var e = require, t = module, n = exports;

Object.defineProperty(n, "__esModule", {
    value: !0
});

var o = e("Global"), i = function(t, n) {
    void 0 === n && (n = []), this.value = null, this.functions = null, this.value = t, 
    this.functions = n;
}, a = function() {
    function t() {
        this.map = new Map();
    }
    return t.getInstance = function() {
        return this._manager || (this._manager = new t()), this._manager;
    }, t.prototype.setValue = function(t, n) {
        var e;
        this.map.has(t) ? ((e = this.map.get(t)).value = n, e.functions.forEach(function(t) {
            return t();
        }), this.map.set(t, e)) : this.map.set(t, new i(n));
    }, t.prototype.bindValue = function(t, n) {
        this.map.has(t) ? this.map.get(t).functions.push(n) : this.map.set(t, new i(o.G[t], [ n ]));
    }, t.prototype.getValue = function(t) {
        return this.map.has(t) ? this.map.get(t).value : null;
    }, t._manager = null, t;
}();

n.default = a;